package com.hshx.config;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;

@Configuration
public class ZhaopingConfiger {

    public static final String EXCHANGE = "zhaoPing";   // 交换空间名称
    public static final String ROUTINGKEY = "zp";   // 设置路由key


    @Bean
    public FanoutExchange exchange1(){
        return new FanoutExchange(
                EXCHANGE,true,true);
    }

    @Bean
    public Queue recordQueue(){
        return new Queue("recordQueue");
    }

    @Bean
    public Binding bindingrecordQueue(Queue recordQueue, FanoutExchange exchange1){

        return BindingBuilder.bind(recordQueue).to(exchange1);
    }

//    @Bean
//    public Queue recordQueue(){
//        return new Queue("recordQueue");
//    }
//    @Bean
//    public Binding bindingrecordQueue(Queue recordQueue, FanoutExchange exchange1){
//        return BindingBuilder.bind(recordQueue).to(exchange1);
//    }

//    @Bean
//    public Binding bindingExchangeQueue11(DirectExchange directExchange, Queue queue11) {
//        return BindingBuilder.bind(queue11)
//                .to(directExchange).with(ROUTINGKEY);
//    }

//    @Bean
//    public DirectExchange directExchange() {
//        // 要创建的交换机
//        // 持久化(存硬盘，重启还在，默认true)
//        // 自动删除(当所有绑定队列都不在使用时删除交换机)
//        System.out.println("direct()");
//        return new DirectExchange(EXCHANGE, true, false);
//    }

//    @Bean
//    public Queue w1() {
//        // 要创建的队列
//        // 持久化(保存硬盘，重启存在，默认true)
//        // 排他(只有创建它的连接可用，连接关闭时无论队列中有没有消息 都会删除队列)
//
//        // 自动删除(当队列中有消息时，无论是否排他，关闭连接都不会删除队列，
//        // 此时消费者消费完消息后再断开消费者，队列会被自动删除，删除后队列消息也丢失)
//
//        // args参数设置队列最多5条消息(保留最后的5条消息，前面的全部丢失)
//        Map<String,Object> args = new HashMap<>();
//        args.put("x-max-length",5);	//超过5个的进入死信队列
//        args.put("x-dead-letter-exchange","dead.exchange");
//        args.put("x-dead-letter-routing-key","deadRouting");
//        return new Queue("w1",true,true,false,args);
//    }
//
//    @Bean
//    public Binding bindingExchangeQueue11(DirectExchange directExchange, Queue queue11) {
//        System.out.println(queue11);
//        return BindingBuilder.bind(queue11).to(directExchange).with(ROUTINGKEY);
//    }
}
